package leetcode_core.leetcode_1;

import org.junit.Test;

public class Rob2 {

    public int rob(int[] nums) {
        int[] dp = new int[nums.length+2];
        dp[nums.length] = 0;
        for(int i = nums.length-1;i>=0;i--){
            dp[i] = Math.max(
                    dp[i+1],//当累加上一间房子的最大金额,就代表着上一间房子被拿了,那么这里就不加
                    dp[i+2]+nums[i]//当累加上两间房子的最大金额,就代表是上两件房子被拿
            );
        }
        return dp[0];
    }


    @Test
    public void testCaseOne(){
        System.out.println(rob(new int[]{1, 2, 3,1}));
    }
    @Test
    public void testCaseTwo(){
        System.out.println(rob(new int[]{2,7,9,3,1}));
    }
}
